package com.shuai.user.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.util.Date;

/**
 * @author bxs
 * @version 1.0
 * @Date 2024/8/3
 */
@Data
public class InterfaceInfoRankVO {
    public static final Long serializableId = 1L;
    /**
     * 主键
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * api主题
     */
    private String apiTitle;

    /**
     * 请求参数类型
     */
    private String reqParamType;
    /**
     * api名称
     */
    private String apiName;
    /**
     * api描述
     */
    private String apiDescription;
    /**
     * 请求类型
     */
    private String method;
    /**
     * api请求url
     */
    private String apiUrl;
    /**
     * 请求头
     */
    private String requestHeader;
    /**
     * 响应头
     */
    private String responseHeader;

    /**
     * 请求参数
     */
    private String requestParams;

    /**
     * api状态 (0:关闭,1:开启,2:异常)
     */
    private Integer apiStatus;
    /**
     * 创建人
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    /**
     * 接口的总调用次数
     */
    private Long totalCallsNum;

    /**
     * api创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /**
     * api修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /**
     * 逻辑删除字段
     */
    private Integer isDeleted;

    private Long invokeCount;
    private Double avgRpsTime;
}
